Robots may perform a variety of tasks during which end effectors or other components of the robots must move to perform the tasks. For example, to retrieve an object and place the object in a container, an end effector of a robot must move from a current location to a pick up location for the object, then after picking up the object must move again to reach a location for placing the object in the container. A trajectory of the end effector during the movement defines the progression over time of motion states (e.g., position, velocity, acceleration, and/or jerk) of the end effector. Moreover, the trajectory of the end effector during the movement is dictated by the trajectories of actuators of the robot that control the movement of the end effector. Accordingly, the trajectory of the end effector during a movement is dictated by the progression over time of position, velocity, acceleration, and jerk of each of the actuators that control the movement of the end effector.
Various techniques may be employed for determining one or more trajectories to be followed by a robot in performance of a task. For example, some robots may employ a non-real-time trajectory optimizer to determine a trajectory of an end effector. For instance, gradient optimization techniques may be utilized such as techniques that first find a feasible trajectory that satisfies a set of constraints, then iteratively optimize the feasible trajectory to remove redundant and/or “jerky” motion and/or in view of other optimization parameters. Also, for example, some robots may employ real time trajectory generation techniques that enable trajectories for actuators to be generated in real time (e.g., within a control cycle of a robot), while taking into consideration kinematic motion constraints of the robots and while enabling real time adjustment to the trajectories in response to sensor events, in response to a change to a target state of motion, and/or in response to other considerations.
However, robots configured to automatically determine trajectories may suffer from one or more drawbacks. For example, non-real time trajectory optimization techniques may not be applicable to scenarios where real-time trajectory generation is desirable and/or necessary, and/or some non-real time trajectory optimization techniques may not enable generation of a phase synchronized trajectory. Also, for example, some real-time trajectory generation techniques may not enable generation of phase synchronized trajectories, or may only enable generation of phase synchronized trajectories when those trajectories are also time-optimal (i.e., only when those trajectories are as time-optimal as time-optimal trajectories that are time synchronized but not phase synchronized). Additional and/or alternative drawbacks of these and/or other techniques may be presented.